package swing;

import java.awt.Color;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;

public class Janela extends JFrame { // toda janela deve estender JFrame
    public Janela() { //construtor que inicializará o conteúdo da janela
        super("Minha Primeira Janela"); // título da janela
        setDefaultCloseOperation(EXIT_ON_CLOSE); // sai ao fechar a janela
        setSize(300, 200); // define largura e altura da janela

        JButton bVermelho = new JButton("Vermelho"); // cria botões
        JButton bVerde = new JButton("Verde");
        JButton bAzul = new JButton("Azul");

        getContentPane().add(bVermelho); // adiciona botões ao painel
        getContentPane().add(bVerde);
        getContentPane().add(bAzul);

        // adiciona manipuladores de eventos aos botões
        bVermelho.addMouseListener(new ManipuladorBotaoCor(Color.RED));
        bVerde.addMouseListener(new ManipuladorBotaoCor(Color.GREEN));
        bAzul.addMouseListener(new ManipuladorBotaoCor(Color.BLUE));

        setVisible(true); // torna o frame que estava oculto, visível

    }

    private class ManipuladorBotaoCor extends MouseAdapter {
        private Color cor;

        public ManipuladorBotaoCor(Color cor) { // construtor
            this.cor = cor; // salva a cor internamente
        }

        @Override // método chamado ao clicarmos em um botão
        public void mouseClicked(MouseEvent me) {
            getContentPane().setBackground(cor); // altera a cor de fundo
        }
    }

    public static void main(String[] a) {
        new JFrame("ABC").setVisible(true);
    }
}
